package com.zhf.rabbitmq.helloworld;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

/**
 * @author: 曾鸿发
 * @create: 2022-01-08 16:55
 * @description：
 **/
public class Producer {

    public static void main(String[] args) throws Exception {
        // 设置rabbitmq相关信息
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("192.168.199.128");
        connectionFactory.setPort(5672);
        connectionFactory.setVirtualHost("/baiqi_1127");
        connectionFactory.setUsername("zhf");
        connectionFactory.setPassword("123456");
        // 通过工厂获得与MQ的连接，获取TCP长连接
        Connection connection = connectionFactory.newConnection();
        // 创建通信 “通道”，相当于TCP中的虚拟连接
        Channel channel = connection.createChannel();
        /*
        参数1:队列的名称
        参数2:队列中的数据是否持久化
        参数3:是否排外（是否支持扩展，当前队列只能自己用，不能给别人用）
        参数4:是否自动删除（当队列的连接数为0时，队列会销毁，不管队列是否还存保存数据）
        参数5:队列参数（没有参数为null）
         */
        channel.queueDeclare("helloworld", false, false, false, null);

        String message = "白起666";
/*
        参数1:交换机名称，当前是简单模式，也就是P2P模式，没有交换机，所以名称为""
        参数2:目标队列的名称
        参数3:设置消息的属性（没有属性则为null）
        参数4:消息的内容(只接收字节数组)
         */
        channel.basicPublish("","helloworld",null,message.getBytes());
        channel.close();
        connection.close();
    }
}
